In certain communications protocols, messages are sent from a sender to a receiver using multiple processes within the sender. As one example, to send a message to a receiver, the sender uses a servant region process and a control region process. The servant region is a volatile process, while the control region is a non-volatile process. The message is initiated from the servant region, which decomposes the message into a plurality of fragments. Each fragment is sent from the servant region to the control region, which then has the responsibility of forwarding that fragment to a receiver of the message.
Since there are multiple processes involved in sending a message and responding to the message, various problems may arise, including a crash of the servant region during control region processing of a fragment, or timeout of a response from the receiver, as examples.